The present invention relates to coding schemes for communications networks that include satellite links. More specifically, the invention relates to adaptively applying inner and outer codes at ground stations and at a satellite in order to improve uplink and downlink efficiency, while meeting a desired bit error rate at a destination ground station.
Modern communications networks carry staggering amounts of information and a portion of the information is often transmitted through a communications satellite. A single satellite may have, for example, the equivalent of 30 or more uplink transponders, each able to receive an uplink signal with a bandwidth of 250 MHz. The resultant uplink data path may have a capacity of 8 to 10 gigabits per second or more. Where a satellite is a link in the communications network, many individual ground stations may encode, modulate, and transmit uplink signals to the satellite. Each uplink signal may consist of hundreds of individual data channels each, for example, carrying data for a telephone conversation.
Because the uplink signals are susceptible to numerous sources of corrupting interference, the ground station applies error correcting codes to the uplink signal. Error correcting codes attempt to lower the Bit Error Rate (BER) of the information-carrying signal to acceptable levels. The BER is generally defined as the ratio of incorrectly received information bits to the total number of received information bits.
In many cases a xe2x80x9cconcatenatedxe2x80x9d set of error correcting codes are applied to the data in order to lower the BER to acceptable levels. Concatenated coding refers to the sequence of coding (to be described below) in which a second coding operation is performed upon already encoded data. The xe2x80x9couter codexe2x80x9d of the concatenated coding is the first code applied (the block code in the following description), while the xe2x80x9cinner codexe2x80x9d of the concatenated coding is the second code applied (the convolutional code in the following description). Alternatively, an additional block code may be used as the inner code (or a sequence of block codes (as the xe2x80x9cinnerxe2x80x9d code) may be used).
The first code the ground station applies is typically a block code. A codeword in a block code consists of k information bits, and r parity bits. The codeword is therefore n=k+r bits in length. A variety of block codes known as Reed-Solomon codes may be used to encode the uplink signals.
As noted above, block codes are generally organized on the basis of bits. Reed-Solomon block codes, however, are organized on the basis of groups of bits referred to as symbols. To form symbols, an incoming serial bit stream may be stored as sequences of m individual bits (a symbol). The Reed-Solomon code has k information symbols (rather than bits), r parity symbols, and a total codeword length of n=k+r symbols. For 8-bit symbols, a Reed-Solomon codeword is typically 255 symbols in length. Allowing the codeword to correct up to 16 symbols requires 32 parity symbols, thereby leaving 223 data symbols (for an effective code rate of 223/255 (approximately 7/8)).
As part of the concatenated coding scheme, an additional level(s) of coding is applied by the ground station. For example, the ground station may further encode the block encoded uplink signals with a convolutional code to reduce the bit error rate (BER) of the uplink signal to even lower levels. A convolutional code is a type of error correcting code which transforms an input sequence of bits into an output sequence of bits through an encoder (a finite-state machine), where additional bits are added to the data stream to allow for error-correcting capability. Typically the amount of error-correction capability is proportional to the amount of additional bits added and the memory present in the encoder. The constraint length, K, of a convolutional code is proportional to the encoder""s memory and the rate of the convolutional code (say m/n, with m less than n) describes how many additional bits are added for every m information bits (input) (i.e., nxe2x88x92m bits added for each m info bits.) The decoding complexity of a convolutional code increases exponentially with the constraint length.
Additional information on block codes and convolutional codes may be found, for example, on pages 166-175 in The Communications Handbook, (Jerry D. Gibson ed., IEEE Press 1997). Pages 166-175 of The Communications Handbook are incorporated herein by reference in their entirety.
Satellites receive the encoded uplink signals and transmit downlink beams to the ground stations. Before a satellite transmits a downlink beam, however, the satellite may perform various signal processing operations on the received uplink signal including demodulation, decoding, switching, and multiplexing. A satellite that demodulates uplink signals and remodulates data for downlink beam in referred to as xe2x80x9cregenerativexe2x80x9d. For example, a satellite that demodulates uplink signals, decodes the signals, and recodes the signals is typically referred to as a xe2x80x9cregenerative decode/recodexe2x80x9d system or more simply xe2x80x9cdecode/recodexe2x80x9d. On the other hand, a satellite which simply forwards the received uplink signals unaltered to a ground station is typically referred to as a xe2x80x9cbent pipexe2x80x9d system. In xe2x80x9c(regenerative) end-to-endxe2x80x9d coding, the satellite typically demodulates the (coded) uplink signal and remodulates the data for transmission in a downlink beam, but without decoding the data on board the satellite.
While concatenated coding is effective at reducing BER, it also faces certain difficulties. In order for the satellite to do significant processing on the data contained in a concatenated coded uplink signal, the satellite must decode the inner code (often a convolutional code) on the uplink signal. As noted above with respect to convolutional codes, the decoding complexity increases exponentially with increasing constraint length. In most instances, the constraint length needed to achieve tolerable BER render the inner code too complex to decode on the satellite without using inordinate amounts of complicated processing hardware, power, and time.
The downlink beams produced by the satellite and transmitted to ground stations often include data (often in Time Division Multiplexed (TDM) form) for hundreds of users (for example, telephony users). Typically, the coding on the uplink signal is designed to cover the worst-case channel conditions (both uplink and downlink) likely experienced by the user at any given time. The worst case channel condition may be associated with an (infrequent) rain storm which causes significant signal interference, for example. In the past, the combination of the inner code and the outer code has been implemented using relatively large constraint length convolutional codes and long block codes to achieve downlink beam performance tailored to the worst case channel condition.
Most ground stations, however, do not experience the worst case channel conditions at any given time. Furthermore, the satellite typically does not contain sufficient power or processing capability to completely decode the inner code and outer codes and recode the data appropriately for each ground station or individual channel condition. Thus, bandwidth is wasted by over-encoding the uplink signal and downlink beam with error correcting information that is not needed by most ground stations in order to use so-called xe2x80x9cend-to-endxe2x80x9d coding in order to alleviate the need for decoding on board the satellite. Wasted bandwidth results in inefficient communication, reduced throughout, and lost revenues.
In the past, satellite links have not adapted their coding schemes to efficiently use bandwidth and match the required ground station BER. For example, U.S. Pat. No. 5,625,624 entitled xe2x80x9cHIGH DATA RATE SATELLITE COMMUNCIATIONS SYSTEMxe2x80x9d to Rosen et al. describes a satellite communications system in which the ground station uses concatenated coding. The satellite demodulates the uplink signal and remodulates the downlink beam for transmission. The system of the ""624 patent thus describes an end-to-end coding scheme, i.e., the satellite does not decode either the inner or the outer code on the uplink signal. Furthermore, the system described in the ""624 patent is unable to adapt the inner or outer code according to individual user BERs.
As another example, U.S. Pat. No. 5,473,601 entitled xe2x80x9cFREQUENCY REUSE TECHNIQUE FOR A HIGH RATE SATELLITE COMMUNICATION SYSTEMxe2x80x9d to Rosen et al. discloses a system in which both the inner code and the outer code on the uplink signal are decoded. The system of the ""601 patent thus discloses a decode/recode approach to processing the uplink signal. A decode/recode approach incurs the extra cost, complexity, and power comsuption needed to decode two set of codes on the uplink signal. Futhermore, the ""601 patent does not describe a system which adaptively adjusts inner or outer codes to achieve the BERs required for individual ground stations.
U.S. Pat. No. 4,800,570 entitled xe2x80x9cCONCATENATED CODE-DECODE SYSTEM FOR THE PROTECTION AGAINST INTERFERENCE OF DIGITAL TRANSMISSIONS THROUGH AN INTERMEDIATE REGENERATIVE REPEATERxe2x80x9d to Perrotta et al. describes another coding approach. In the ""570 patent, no inner code is applied to the transmitted signal. At the satellite, the transmitted signal is received and demodulated. An inner code is then applied to the transmitted signal before remodulation and transmission. The ""570 patent, however, does not describe adaptively adjusting inner or outer codes to tailor the downlink beam BER according to the needs of individual ground stations.
A need has long existed in the industry for an improved uplink signal and downlink beam coding technique, which overcomes the disadvantages discussed above and previously experienced.
It is an object of the present invention to provide an uplink signal and downlink beam concatenated coding scheme which uses a reduced complexity inner code on the uplink signal for efficient decoding on a satellite.
It is another object of the present invention to allow a satellite to adapt uplink and downlink beam coding according to a predetermined BER required by the destination ground station.
It is another object of the present invention to allow a satellite to adapt uplink and downlink beam coding according to a BER selected by market driven criteria.
It is yet another object of the present invention to allow individual data channels in a single downlink beam to be individually coded to achieve a given BER.
The present invention provides a method for custom coding a downlink beam by a satellite. The method includes the step of applying, at a ground station, an outer code to an uplink signal to produce an outer coded uplink signal. The outer code may be a relatively complex outer code, for example a Reed-Solomon (255, 223) block code.
In addition, the ground station applies a reduced complexity inner code to the outer coded uplink signal. The ground station thereby produces a concatenated coded uplink signal that is subsequently transmitted to a satellite. The reduced complexity inner code may be a short block code, for example a (12,8) or (16, 8) block code, or a short constraint length convolutional code, for example, a constraint length 3 convolutional code. The choice of inner code on the uplink can also be adaptively driven to meet market criteria, channel condition, required BER, or other criteria. The choice of inner code may therefore vary according to the criteria cited above.
The satellite decodes the reduced complexity inner code of the concatenated coded uplink signal to produce an outer coded satellite data stream. The satellite thereby has access to the outer coded data channels which form the outer coded uplink signal. The satellite may then apply any selected inner code to the data channels individually, or to a downlink beam in its entirety.
The satellite applies a selected inner code to the outer coded satellite data stream to produce a concatenated coded downlink signal. The selected inner code may be chosen according to numerous criteria. For example, the satellite may determine the selected inner code according to service level (for example, a guaranteed minimum throughput) and cost of service. Alternately, the satellite may determine the selected inner code according to a desired downlink BER for any number of ground stations (the downlink xe2x80x9cinnerxe2x80x9d code may be very complex since the ground terminal is more able to deal with decoding complexity than was the satellite.). After the satellite has selected the appropriate inner code and produced the concatenated coded downlink signal, the satellite transmits the concatenated coded downlink signal in a downlink beam to a ground station.